package br.com.sistemasaude.dao;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.sistemasaude.bean.Convenio;
import br.com.sistemasaude.bean.Produto;
import br.com.sistemasaude.util.JpaUtil;

public class ConvenioDaoImp  implements ConvenioDAO{

	private final GenericDAO<Convenio> dao;	

	EntityManager em = new JpaUtil().getEntityManager();

	public ConvenioDaoImp() {
		dao = new GenericDAO<Convenio>(em, Convenio.class);
	}

	public void salvar(Convenio convenio) {

		try {
			em.getTransaction().begin();
			dao.salvar(convenio);
			em.getTransaction().commit();
		} catch (Exception e) {			
			em.getTransaction().rollback();
			e.printStackTrace();
		} finally {
			em.close();
		}

	}

	public List<Convenio> listar() {

		List<Convenio> listaConvenios = null;

		try {
			listaConvenios = (List<Convenio>) em.createQuery("from Convenio").getResultList();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			em.close();
		}

		return listaConvenios;
	}

	public Convenio buscar(int id_produto){

		Query query = em.createQuery("from Convenio c where c.id_produto = :id_produto");
		query.setParameter("id_produto", id_produto);

		return (Convenio) query.getSingleResult();
	}	
	
	public Convenio buscarPorNome(Convenio convenio){
		
		Query query = em.createQuery("from Convenio c where c.nome = :nome");
		query.setParameter("nome", convenio.getNome());
		
		return (Convenio) query.getSingleResult();
	}

}
